package uk.ac.cam.cstibhotel.otcanalyser.gui;
import java.awt.Component;
import java.util.LinkedHashMap;
import javax.swing.BorderFactory;
import javax.swing.BoxLayout;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.MutableComboBoxModel;
import javax.swing.border.EtchedBorder;
import uk.ac.cam.cstibhotel.otcanalyser.database.Database;
import uk.ac.cam.cstibhotel.otcanalyser.communicationlayer.Search;
public class SaveWindow extends JPanel {
private static final long serialVersionUID = 1L;
private CenteredJLabel SaveLabel = new CenteredJLabel("Save a search");
private CenteredJLabel LoadLabel = new CenteredJLabel("Load a search");
private CenteredJLabel SaveboxLabel= new CenteredJLabel("Name");
public JTextField Savebox = new JTextField();
public CenteredJLabel LoadboxLabel = new CenteredJLabel("Name");
public static JComboBox<String> Loadbox = new JComboBox<String>();
public JButton SaveButton = new JButton("Save");
public JButton LoadButton = new JButton("Load");
private SaveListener saveListener = new SaveListener();
private LoadListener loadListener = new LoadListener();
private static SaveWindow instance;
public static SaveWindow getInstance() {
if (instance==null) instance = new SaveWindow();
return instance;
}
private SaveWindow() {
setSize(300,80);
setBorder(BorderFactory.createEtchedBorder(EtchedBorder.LOWERED));
setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
this.add(LoadLabel);
LoadLabel.setVisible(true);
this.add(LoadboxLabel);
LoadboxLabel.setVisible(true);
this.add(Loadbox);
updateLoad();
Loadbox.setVisible(true);
this.add(LoadButton);
LoadButton.setAlignmentX(Component.CENTER_ALIGNMENT);
LoadButton.setVisible(true);
LoadButton.addActionListener(loadListener);
this.add(SaveLabel);
SaveLabel.setVisible(true);
this.add(SaveboxLabel);
SaveboxLabel.setVisible(true);
this.add(Savebox);
Savebox.setVisible(true);
SaveButton.setAlignmentX(Component.CENTER_ALIGNMENT);
this.add(SaveButton);
SaveButton.setVisible(true);
SaveButton.addActionListener(saveListener);
this.setVisible(true);
}
static void updateLoad() {
Object [] strings;
try {
LinkedHashMap<String,Search> savedSearches = (LinkedHashMap<String,Search>) Database.getSavedSearches();
strings = (savedSearches.keySet()).toArray();
MutableComboBoxModel<String> model = (MutableComboBoxModel<String>) Loadbox.getModel();
((DefaultComboBoxModel<String>) model).removeAllElements();
for (Object i:strings) {
model.addElement((String) i);
}
}
catch (NullPointerException e) {
}
}
}